import socket
import chat_pb2


# 客户端，参数是名字、主机端口号
def run_client(name, server_port):
    # 创建TCP传输套接字，连接主机端口
    client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    client_socket.connect(('127.0.0.1', server_port))
    # 设置和序列化消息
    message = chat_pb2.ChatMessage()
    # 第一次进入可以先把名字发送过去
    message.name = name
    client_socket.send(message.SerializeToString())
    while True:
        message_text = input("输入您要发的信息(“q”退出，“s”换聊天室):").strip()
        if message_text == 'q' or message_text == 's':
            client_socket.close()
            break
        message.message = message_text
        client_socket.send(message.SerializeToString())
    return message_text


if __name__ == '__main__':
    name = input('请输入你的名字: ')
    while True:
        ports = [11111, 22222, 33333]
        server_port = int(input("请输入你要进入的聊天室（11111、22222、33333）: ").strip())
        if server_port not in ports:
            server_port = int(input("输入错误，请输入你要进入的聊天室（11111、22222、33333）: ").strip())
        r1 = run_client(name, server_port)
        if r1 == 'q':
            break
